home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / xc-4.4 / README < prev    next >
Text File  |  1995-07-13  |  16KB  |  380 lines

  1. @(#) XC README, patchlevel 4.3 JPRadley 11 September 1993
  2. This file (and almost every other one in the distribution) uses 4-character
  3. tabstops.
  4. The supplied .exrc file sets ts=4 and sw=4, for vi's purposes.
  5.  
  6.  
  7.     B A C K G R O U N D
  8.  
  9. Once upon a time (in 1985 or so), a fellow named Eric Coe wrote a Unix dialout
  10. telecommunications program with xmodem called XCOMM. This program was
  11. substantially upgraded and improved by another fellow named Larry Gensch, who
  12. brought XCOMM up to Version 2.2. Version 2.2 included a simple script
  13. language, 128-byte Xmodem and Compuserve Quick-B file-transfer protocols, and
  14. some other stuff. Fred Buck then changed the program name to XCMALT, which it
  15. maintained until June 1991, when Jean-Pierre Radley renamed it XC. 
  16.  
  17. XC is a massive expansion and modification of XCOMM 2.2. Many bugs in
  18. XCOMM 2.2 have been fixed, and many advertised features that didn't work in
  19. XCOMM 2.2 do work in XC. Also, XC includes a fullscreen dialing directory; a
  20. totally rewritten and much more powerful script language allowing, among other
  21. things, remote execution of shell commands and unattended protocol-controlled
  22. file transfer (provided that your system also has Chuck Forsberg's "rz/sz"
  23. Xmodem/Ymodem/Zmodem program, available as shareware from many sources), a
  24. flexible variable mechanism, including access to shell environment variables,
  25. and more; BREAK-signal capability; the capability to upload a file in ASCII
  26. from within a script; and miscellaneous cosmetic changes.
  27.  
  28. But while XC incorporates much of Larry Gensch's work, it's not supported by
  29. Larry Gensch (although he contributed the key-binding features starting with
  30. XC3.2a). The changes from XCOMM 2.2 are the product of Steve Manes, who
  31. installed uucp LCKfile support and special compile-time tuning for SCO Xenix,
  32. and who wrote the fullscreen dialing directory; Fred Buck, who rewrote the
  33. script language, performed various bugfixes and alterations, and installed
  34. special compile-time tuning for the Tandy 6000; and Jean-Pierre Radley, who
  35. installed the B+ Protocol, used more termcap features, and is now the
  36. "caretaker" of XC.
  37.  
  38.  
  39.     I N S T A L L A T I O N
  40.  
  41. Run Configure. There are various definitions that have to be set according
  42. to your flavor of Unix, your preference for default directories, and other
  43. user-definable items.
  44.  
  45. Typing just "make" will compile XC. On most systems, XC should be run "suid
  46. uucp", and in order to do this, you should have chosen "uucp" as the user
  47. to own the program, and 4755 as its permissions. If so, typing "make
  48. install.suid" will strip out its symbol table, place the program in INSDIR,
  49. and change its modes and permissions accordingly. If you did not elect
  50. this when running Configure, you can type "make install", but XC's permissions
  51. will probably not allow it to properly cope with dial-in/dial-out ports.
  52.  
  53. The "xc.nro" file is 'nroff' source for a manual page which describes the
  54. command-line options, the various commands once you're running XC, script
  55. language, file transfers, and the price of milk in Soviet Georgia in 1986.
  56. This file MUST pass through 'tbl' and 'col', e.g.,
  57.      "tbl xc.nro | nroff -man | col > /usr/man/cat.L/xc.L".
  58.  
  59. Some distribution files that you might adapt to your own purposes:
  60.  
  61.         .exrc        sets tabstops and shiftwidth to 4, which is necessary
  62.                      to properly view almost every file in the XC distribution.
  63.                      It also contains, commented out, macros
  64.                      to help read CompuServe message downloads, and to
  65.                      prepare replies.
  66.  
  67.         .xc          sample startup script, demonstrates keyboard bindings
  68.  
  69.         .phonelist   sample dialing directory data file
  70.  
  71.         .callhq      sample script to call a Unix/Xenix system
  72.  
  73.         .uni         sample script to call CompuServe and enter UnixForum
  74.  
  75.         .aus         sample script to call CompuServe and enter, in turn,
  76.                      SCOForum and UnixForum, uploading any prepared messages,
  77.                      capturing all new messages into separate files, and
  78.                      hanging up.
  79.  
  80.         .autocis     sample script to call CompuServe, get any waiting
  81.                      Mail into a capture file, then visit the PRACTICE
  82.                      and the Unix Fora in turn, uploading any prepared
  83.                      messages, capturing all new messages into separate
  84.                      files, then hanging up.
  85.  
  86.         .cisdial     meant to be called as a sub-script for dialing
  87.                      CompuServe.
  88.  
  89.         .temp_opt    meant to be called as a sub-script for temporary
  90.                      setting of Options in a CompuServe Forum to make
  91.                      efficient use of .autocis, .aus, or .uni.
  92.  
  93.         .pass        a subscript containing passwords for various sites.
  94.                      This should have very restrictive permissions.
  95.  
  96.         .rz          sample script to receive files using the public
  97.                      domain "rz/sz" package.
  98.  
  99.         .sz          sample script to send files using the public domain
  100.                      "rz/sz" package.
  101.  
  102.         call         a Bourne shell script to use a spare modem to dial
  103.                      voice calls for you.
  104.  
  105.         callback     a Bourne shell script to call a site and have it
  106.                      return the call and present a 'login:' prompt.
  107.  
  108.         cisdownload  a Bourne shell script to fetch a file from a Library
  109.                      in a CompuServe Forum.
  110.  
  111.  
  112.     X C  R E V I S I O N  H I S T O R Y
  113.  
  114. Version 4.4 Radley 1 Mar 1994
  115.     Revise quoting used for getword (clue from Tom De Pauw)
  116.     Fix extraneous ^Ms in capture files (clue from Terry Imler)
  117.     Revised .exrc
  118.     Include .slip.eg script
  119.  
  120. Version 4.3 Radley 11 Sep 1993
  121.     Redid all time routines
  122.     Increased B+ internal buffers to use 2K packets
  123.     Added Debug section to man page
  124.  
  125. Version 4.2 Radley 30 Aug 1993
  126.     Reverted to 7e|7o|8n
  127.     Read the environment for LINES and COLUMNS (clue from Stockler)
  128.     Took out half-duplex stuff
  129.     Added chdir capability
  130.     Test for return type of signal() in Configure
  131.  
  132. Version 4.1 Gensch & Radley 10 Apr 1993
  133.     Added Configure script
  134.     Took out T6000 conditional
  135.     Changed 7e|7o|8n to 7e2|7o2|8n1, with CSTOPB as needed
  136.  
  137. Version 3.4 Radley 13 Feb 1993
  138.     Took out bitmask and 7bit stuff, now have 7E, 7O, or 8N capability
  139.     Sleep(1) after PREFIX to allow modem to react (clue from Doug Scothorne)
  140.     Fixed newbmask signalling to prevent leak into B+ (clue from Jim Asman)
  141.     Deleted for-loops in s_dial and s_term (clue Brian Ferguson)
  142.     Tested for CO if no CN (clue Roy Johnson)
  143.  
  144. Version 4.0 Radley 11 Jun 1992
  145.     Used ANSI Prototype function declarations
  146.         (this road will not be travelled further...)
  147.  
  148. Version 3.3 Radley 25 May 1992
  149.     Provided call (clue from John Esak) and cisdownload shell scripts
  150.     Do not fork to terminal mode if stderr is not a tty
  151.     Added mini-menu
  152.     Merged Larry Gensch's 3.2a additions into xcscript.c
  153.     Used Larry Gensch's NIL-pointer macro throughout
  154.     Make a local copy of scriptname within S_Call()
  155.     Renamed isig() to mode()
  156.     Rearranged sections of the manual
  157.     Restored newbmask (clue from Doug Scothorne)
  158.     Set ptr = word early in k_waitfor (clue from Peter Smithem)
  159.     B+ Packet_Size requests 2k if bps > 2400 (CIS may eventually do this)
  160.     Use BS=c_cc[VERASE] == user's ERASE key (clue from Peter Gutmann)
  161.     Used oldmode before printing help or dialdir (clue from Bill Greene)
  162.     SYSVR4 mods for xcport.c (Larry Rosenman)
  163.  
  164. Version 3.2a Larry Gensch 22 Sep 1991
  165.     Made hard-coded terminal mode escape character a SETable value 
  166.     Added dynamic keyboard binding module
  167.     Added bind_function, bind_script, and bind_function to script language
  168.     Added fullword synonyms for command line keywords (eg, quit, term)
  169.     Incorporated show_bindings() into help display
  170.     Modified help display into more readable (to me, anyway) format
  171.     Added show_bindings() as a terminal mode function (esc - ?)
  172.     Fixed command line input routine
  173.  
  174. Version 3.2 Radley 24 Aug 1991
  175.     Set terminal's c_oflag to 0 (clue from Ronald Khoo)
  176.     Openfile fix (Peter Smithem)
  177.     Undefined toupper/tolower macros
  178.     Removed toggle() and introduced capt_on() and capt_off()
  179.     Changed diversion pacing back to using waitfor()
  180.     Changed send_slowly to send_string; left out inter-character delay
  181.     Removed newbmask
  182.     Purge() before doing a %take (clue from Bob Stockler)
  183.     Reinstalled xmodem crcheck as it was in 2.5 (clue from Volker Beyer)
  184.     Rearranged some modules to make gcc happier
  185.     Renamed intdel() to isig()
  186.     Unscrambled the SUCCESS/FAILURE nonsense in xcscrpt.c
  187.     Dropped trminp() in favor of fgetc()
  188.     Reworked signal handling
  189.  
  190. Version 3.1 Radley 14 Jul 1991
  191.     Purge() before starting B+ (Al Bolduc)
  192.     Eliminated purge as a set option.
  193.     Send \r, not \n, after the Byeptr (Al Bolduc)
  194.     When diverting from a script, pace by reading modem one line at a time
  195.     Combined capture/captflag, and cf/cfp
  196.  
  197. Version 3.0b Radley 08 Jul 1991
  198.     Eliminated mklow/mkhigh in favor of tolower/toupper
  199.     Shortened inter-line delay in script transmittal
  200.  
  201. Version 3.0a Radley 29 Jun 1991
  202.     Bugs re DIDO ports logic
  203.     Spelling errors in xc.nro
  204.     Added Buck-type CIS macros to .exrc
  205.  
  206. Version 3.0 Radley    06 Jun 1991
  207.     Program name XC replace XCMALT, by Jean-Pierre Radley
  208.  
  209.     Ditched nap() in favor of times()
  210.     Cleaned up error handling in xcscrpt.c
  211.     Used NULLS and NULLF where appropriate
  212.     Used same crc table for xmodem and B+ (Mike Barton)
  213.     Increased size of f[] in xcdial.c (Tom Cattrall)
  214.     Introduced XC_PATH (Dan Everhart)
  215.     Won't mistake a directory for a script (clue from Bob Stockler)
  216.     Added "hangup" script keyword (Dan Everhart)
  217.     Forced 8N1 setting on opening port (clue from John James & Russ Ranshaw)
  218.     Cleaned up manual page
  219.     Included 38400 speed
  220.     Deleted ioctl(TCFLSH) from s_exit() (David Kindred)
  221.     Fixed spurious return to dialing directory after B_Transfer (David Kindred)
  222.     Fixed auto toggle after dialing without a script (clue from Roger Chaplin)
  223.     Use carat-char for a ctrl-char in waitfor as well as in transmit
  224.     Added MY_ESC-Q to quit XC from terminal mode (clue from Bill Hobson)
  225.  
  226.  
  227.     X C M A L T  R E V I S I O N  H I S T O R Y
  228.  
  229.  
  230. Version 2.9 Radley 02 Sep 1990
  231.     Fixed error messages and file opening in xcb+.c when permission denied.
  232.  
  233. Version 2.8 Radley 01 Sep 1990
  234.     Fixed interrupt handling when dialing from phonelist (clue from Jim Asman)
  235.     Merged xcparse.c into xcscrpt.c
  236.     Fixed backspace handling in getline()
  237.     Used getline() inside man_dial()
  238.     Did away with using /dev/tty
  239.     For cron: do not bother with TERM if !isatty()
  240.     Fixed page counting in dial directory routines (clue from Mike Squires)
  241.     Changed Msg[80] to Msg[SM_BUFF] (clue from Dave Cardinal )
  242.     Fixed a bad tgetstr() call (clue from Per Bilse)
  243.  
  244. Version 2.7 Radley 12 June 1990
  245.     Merge install.doc into xcmalt.h and README
  246.     Change xcmalt.doc to nroff source
  247.     Add cr_add flag to insert [or not] CRs after NLs in B+ uploads
  248.  
  249. Version 2.6.1 Betz, Cattrall, Roberts, Scothorne, Radley 13 May 90
  250.     Use separate rxbuf and kbbuf for port/keyboard input (Tom Cattrall)
  251.     Stretched some sleep and nap delays (Doug Scothorne)
  252.     Removed '/' from INSDIR definition in Makefile (Tom Betz)
  253.     Fixed bug in while/do/call script/done logic (clue from Tom Roberts)
  254.     Removed dd_done variable
  255.     Fixed terminal(todir) logic
  256.  
  257. Version 2.6 Radley 29 April 1990
  258.     Reinstated SCO 2.2 ungetty calls
  259.     Deleted crc setting, xmodem now always done with CRC
  260.     Added auto flag, automatically start capture on entering terminal mode
  261.     Used tputs() for screen control strings.
  262.  
  263. Version 2.5 George Pontis & Jean-Pierre Radley 19 April 1990
  264.     Use ioctl.h only for the T6000
  265.     Fixed calls to nap() for BSD
  266.     Fixed statbuf() declaration bug in xcport.c
  267.     Included mklow()/mkhigh() as frontends to tolower()/toupper()
  268.     Included NOSHELL option
  269.     Exits mopen() if no port specified
  270.  
  271. Version 2.4 Radley    31 Mar 1990
  272.     Made all identifiers unique in first seven characters.
  273.     Replaced incorrect references to "baud" and "baud-rate" by
  274.      "bps" and "bits/second"
  275.  
  276. Version 2.3 Radley 19 Feb 1990
  277.     B-Plus replaces Quick-B
  278.     Reinstated xclog code
  279.     No mungmode variable; overwriting of a file interactively confirmed.
  280.     No term variable; all transfers return to Terminal mode.
  281.     Added timer.c, to calibrate the built-in nap() code.
  282.  
  283. Version 2.2 Radley 05 Jan 1990
  284.     Removed XCLUDE termio setting, which locked port on first fopen()
  285.     Change setuid to be uid of 'uucp'
  286.     Fixed set/get/uid routines
  287.     Revised menu display
  288.     Removed xclog code from xccisb.c
  289.     Changed many TCSETAW ioctl calls to TCSETA
  290.  
  291. Version 2.1 Radley  12 Dec 1989
  292.     Revised all inverse video displays
  293.     Took out more unnecessary routines
  294.     Permitted operation from 'cron' or 'at'
  295.     Fixed some of the interrupt routines
  296.     Removed PUT_TAKE manifest, code for put/take now always included
  297.     Fixed some of the mopen() routines.
  298.     Did away with DRIBBLE, use nap() instead
  299.  
  300. Version 2.0 Radley 9 Aug 1989
  301.     Added openfile routine (credit to George Pontis)
  302.     Added LIBDIR (credit to George Pontis)
  303.     Used setbuf on local tty (credit to George Pontis)
  304.     Eliminated fflush() calls
  305.     Fixed put and take code
  306.     Deleted SCO 2.2 ungetty stuff
  307.  
  308. Version 1.0 ...all in or about, oh, say, 1988.
  309.     CD-independent modem opening added by Fred Buck/J-P Radley
  310.     Broken shell-escape mechanism fixed by Fred Buck
  311.     Tandy 6000 LCKfile support added by Fred Buck
  312.     Flexible LCKfile support added by Steve Manes
  313.     Same, for SCO 2.2, added by J-P Radley
  314.     Fullscreen dialing directory added by Steve Manes
  315.     Fullscreen dialing directory tuned by Fred Buck/J-P Radley
  316.     Shell-escape ignore-SIGINT bug fixed by Fred Buck
  317.     Command-mode ignore-xon/xoff bug fixed by Fred Buck
  318.     Script parsing greatly extended by Fred Buck
  319.     "BYE" sequence to modem on exit added by Fred Buck
  320.  
  321.     Program named XCMALT instead of XCOMM, by Fred Buck
  322.  
  323.  
  324.     X C O M M  R E V I S I O N  H I S T O R Y
  325.  
  326.  
  327. Version 2.2    larry gensch 14 Dec 87 Major code restructure
  328.     Reduced program and command options
  329.     Added SET command for setting various parameters
  330.     Added HANGUP command for disconnecting modem
  331.     Modified xccisb.c code to support CIS "Quick B" Protocol
  332.     Added xcscrpt.c code for processing script files
  333.     Added SCRIPT= parameter to phonebook processing (auto-logon scripts)
  334.     Added CIS parameter for CIS <ENQ> auto transfers
  335.     Added NL parameter for newline translation
  336.     Added HANGUP command from terminal mode
  337.     Added SCRIPT command from terminal mode
  338.  
  339. Version 2.1b    larry gensch 11 Nov 87 Bug Fix release
  340.     (no bugs in the code, just some portability fixes)
  341.     Changed "sigset" in xccisb to "signal"
  342.     Removed #include <setjmp.h> from xcxmdm
  343.  
  344. Version 2.1a    larry gensch 28 Oct 87 General Update
  345.     Added CIS "B" Protocol (c, ct commands)
  346.     Added BAUD= & BITS= parameters to phonelist file.
  347.     Switched some command letters
  348.     Revised command line parsing to use getopt()
  349.  
  350. Version 2.0    larry gensch 19 Oct 87 Revisions for System V.3
  351.     Changed <sgtty> references to <termio> (modified ioctl(2) calls)
  352.     Changed terminal mode function keys to <ESC> sequences; added getconchr()
  353.  
  354. Version 1.1    Eric E Coe 21 Jul 85
  355.     Autodial for Hayes-compatible modem.
  356.     General rearranging of the code
  357.  
  358. Version 1.0    Eric E Coe 12 Apr 85
  359.     Program created
  360.  
  361.  
  362. ===================================
  363.  
  364.  
  365. Note: in the original XCOMM file "install.doc", Larry Gensch gave his
  366. various mail addresses for users to reach him about bug reports, upgrade
  367. requests, and the like. But Larry doesn't support (or in fact have anything
  368. to do with) XC/XCMALT, except as a contributor, and the fact that
  369. XCMALT is based on XCOMM 2.2, so there's no point in including this
  370. information here. 
  371. Fred Buck, who made the major changes from XCOMM to XCMALT, passed away in
  372. early 1989.
  373. Jean-Pierre Radley has since been shepherding the program as it evolved from
  374. XCMALT to XC.
  375.  
  376. Gripes, bugs, and comments accepted by:
  377.     Jean-Pierre Radley
  378.       jpr@jpr.com
  379.       72160.1341@compuserve.com
  380.